[−][src]Crate rustracing
OpenTracing API for Rust
Examples
use rustracing::sampler::AllSampler; use rustracing::tag::Tag; use rustracing::Tracer; use std::thread; use std::time::Duration; // Creates a tracer let (span_tx, span_rx) = crossbeam_channel::bounded(10); let tracer = Tracer::with_sender(AllSampler, span_tx); { // Starts "parent" span let parent_span = tracer.span("parent").start_with_state(()); thread::sleep(Duration::from_millis(10)); { // Starts "child" span let mut child_span = tracer .span("child_span") .child_of(&parent_span) .tag(Tag::new("key", "value")) .start_with_state(()); child_span.log(|log| { log.error().message("a log message"); }); } // The "child" span dropped and will be sent to `span_rx` } // The "parent" span dropped and will be sent to `span_rx` // Outputs finished spans to the standard output while let Ok(span) = span_rx.try_recv() { println!("# SPAN: {:?}", span); }
As an actual usage example of the crate and an implmentation of the OpenTracing API, it may be helpful to looking at rustracing_jaeger crate.
References
Modules
carrier | Traits for representing carriers that propagate span contexts across process boundaries. |
convert | Traits for conversions between types. |
log | Span log. |
sampler |
|
span | Span. |
tag | Span tag. |
Structs
Error | This crate specific error type. |
Tracer | Tracer. |
Enums
ErrorKind | The list of the possible error kinds |
Type Definitions
Result | This crate specific |